/* ************************************************************************************
 * Copyright (c) 2010, FoxholeStudios
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list 
 * of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this 
 * list of conditions and the following disclaimer in the documentation and/or other 
 * materials provided with the distribution.
 * Neither the name of FoxholeStudios nor the names of its contributors may be used 
 * to endorse or promote products derived from this software without specific prior 
 * written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
 * SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 
 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 
 * DAMAGE.
 * ************************************************************************************/

package com.foxhole.tools.spartan.managers.collision;

/**
 * This class identifies a collision pair 
 * 
 * @author Tiago "Spiegel" Costa
 *
 */
public class CollisionTypePair{
	int type1;
	int type2;
	
	String id;
	
	/**
	 * Constructs a collisionTypePair
	 * 
	 * @param type1 the first collision type
	 * @param type2 the second collision type
	 */
	public CollisionTypePair(int type1, int type2){
		this.type1 = type1;
		this.type2 = type2;
		id = CollisionTypePair.getID(type1, type2); 
	}
	
	/**
	 * Obtains a unique ID from the collision type 
	 * 
	 * @param type1 the first collision type
	 * @param type2 the second collision type
	 * @return a unique ID between those types
	 */
	public static String getID(int type1, int type2){
		return (type1 < type2) ? (type1+"-"+type2) : (type2+"-"+type1);
	}

	/**
	 * Obtains the first collision type
	 * 
	 * @return an integer representing the first collision type
	 */
	public final int getType1() {
		return type1;
	}

	/**
	 * Obtains the second collision type
	 * 
	 * @return an integer representing the second collision type
	 */
	public final int getType2() {
		return type2;
	}

	/**
	 * Obtains the Id for this collision pair
	 * 
	 * @return a string representing the Id for this collision pair
	 */
	public final String getId() {
		return id;
	}
}
